<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
 <HEAD>
  <TITLE>Apache module mod_speling</TITLE>
 </HEAD>
<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
 <BODY
  BGCOLOR="#FFFFFF"
  TEXT="#000000"
  LINK="#0000FF"
  VLINK="#000080"
  ALINK="#FF0000"
 >
<!--#include virtual="header.html" -->
  <H1 ALIGN="CENTER">Module mod_speling</H1>
  <P>
  This module is contained in the <code>mod_speling.c</code> file,
  and is <strong>not</strong> compiled in by default.
  It attemps to correct misspellings of
  URLs that users might have entered, by ignoring capitalization
  and by allowing up to one misspelling.<br>
  This catches the majority of misspelled requests. An automatic
  "spelling corrected" redirection is returned if only one matching
  document was found, and a list of matches is returned if more than
  one document with a sufficiently similar name is found.
  </P>

  <h2>Summary</h2>
  <p>
  Requests to documents sometimes cannot be served by the core apache
  server because the request was misspelled or miscapitalized. This
  module addresses this problem by trying to find a matching document,
  even after all other modules gave up. It does its work by comparing
  each document name in the requested directory against the requested
  document name <STRONG>without regard to case</STRONG>, and allowing
  <STRONG>up to one misspelling</STRONG> (character insertion / omission
  / transposition or wrong character). A list is built with all document
  names which were matched using this strategy.
  </p>
  <p>
  If, after scanning the directory,
  <ul>
   <li>no matching document was found, Apache will proceed as usual
       and return a "document not found" error.
   <li>only one document is found that "almost" matches the request,
       then it is returned in the form of a redirection response.
   <li>more than one document with a close match was found, then
       the list of the matches is returned to the client, and the client
       can select the correct candidate.
  </ul>
  </p>

  <h2>Directives</h2>

  <menu>
  <li><A HREF="#checkspelling">CheckSpelling</A>
  </menu>

  <HR> <!-- the HR is part of the directive description -->
  <A name="checkspelling"><h2>CheckSpelling</h2></A>
  <!--%plaintext &lt;?INDEX {\tt CheckSpelling} directive&gt; -->
  <strong>Syntax:</strong> CheckSpelling <em>on/off</em><br>
  <strong>Default:</strong> <code>CheckSpelling Off</code><br>
  <Strong>Context:</strong> server config, virtual host<br>
  <strong>Status:</strong> Base<br>
  <strong>Module:</strong> mod_speling<br>
  <strong>Compatibility:</strong> CheckSpelling was available as a separately
  available module for Apache 1.1, but was limited to miscapitalizations.
  As of Apache 1.3, it is part of the apache distribution<!-- or:
  available as a separate module-->.<p>

  This directive enables or disables the spelling module. When enabled,
  keep in mind that
  <UL>
  <LI>the directory scan which is necessary for the spelling
      correction will have an impact on the server's performance
      when many spelling corrections have to be performed at the same time.
  <LI>the document trees should not contain sensitive files which could
      be matched inadvertedly, by a spelling "correction".
  <LI>the module is unable to correct misspelled user names
      (as in <code>http://my.host/~apahce/</code>), just file names or
      directory names.
  </UL>

<!--#include virtual="footer.html" -->
 </BODY>
</HTML>

